package com.javacoo.xservice.base.setting;

import java.util.HashMap;
import java.util.Map;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import lombok.Data;

/**
 * hystrix
 * <p>说明:</p>
 * <li></li>
 * @author DuanYong
 * @since 2017年11月13日下午1:21:01
 */
@Data
@Component
@ConfigurationProperties(prefix = "hystrix")
public class HyStrixSetting {
	/** 是否启用超时熔断处理,默认值*/
	public static final boolean DEFAULT_ENABLE= false;
	/** 服务调用超时时间,默认值*/
	public static final int DEFAULT_TIMEOUT_IN_MILLIONS = 5000;
	/** 需要处理的方法,默认值*/
	public static final String DEFAULT_METHODS = "";
	/**
	 * 是否启用超时熔断处理
	 */
	private boolean enable = DEFAULT_ENABLE;
	/**
	 * 需要处理的方法
	 */
	private String methods=DEFAULT_METHODS;

	/**方法名，超时时间对照Map*/
	private Map<String, Integer> methodTimeoutMap = new HashMap<>(10);
	/**
	 * 服务调用超时时间(毫秒)
	 */
	private int timeoutInMillions = DEFAULT_TIMEOUT_IN_MILLIONS;
	
}
